Skip to content

Rollup of 13 pull requests#158487

Merged
rust-bors[bot] merged 37 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-ln8LEcs
Jun 27, 2026
Merged

Rollup of 13 pull requests#158487
rust-bors[bot] merged 37 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-ln8LEcs

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Contributor

Successful merges:

r? @ghost

Create a similar rollup

durin42 and others added 30 commits June 23, 2026 10:47
A recent LLVM change causes some changes here, if I'm understanding
correctly it allows some better latency reduction. From what I can tell,
this test doesn't care that only a single register is used, so we use
-DAG instead of -NEXT to allow some instruction reordering.

By happy coincidence, the z10 and z13 code matches now, which collapsed
some of the test lines. I'm happy to split them back out if that's bad
for some reason though!
To explain some non-obvious things that took me some time to work out.
`EarlyLintPassObjects` is an old name.
As `*CombinedLateLintModPass`, because that matches things like
`late_lint_mod`.
We generally write `lint_pass`/`LintPass`. This commit renames some
things that only use `pass`/`Pass`. And also some `s/module/mod`
changes, too.
There are `register_*_lint_pass` methods, might as well go through them.
Use `TargetFeatureParser` to reject `#[target_feature]` on functions
marked as lang items (via `#[lang = "..."]` or `#[panic_handler]`),
replacing `check_target_feature` in `rustc_passes`.
…rgau

[rustdoc] Update `doc_cfg` hide/show syntax

Part of rust-lang#43781.

As discussed at the all-hands with the rustdoc team, we decided to follow the `check-cfg` syntax. So this PR implements it.

Considering @Urgau made the `check-cfg` implementation, I'll set them as reviewer here.

r? @Urgau
…le_trait, r=chenyukang

Cross-referencing tuple_trait tracking issue, source and the Unstable Book
add smoketest for std::net::hostname

This function is currently not invoked by any test, which is why I didn't even realize that Miri does not support it.

Tracking issue: rust-lang#135142
Use infer tys for synthetic params when lowering const paths point to fns

```rust
#![feature(min_generic_const_args)]

trait Trait {}
impl<'t> Trait for [(); N] {}
fn N(arg: impl Trait) {}
```

1. `arg: impl Trait` implies a synthetic param `<impl Trait>` and the obligation `_: Trait`;
2. when matching `impl Trait for [(); N]`, lowering const arg `N` fills in that synthetic param, so the impl header contains `<[(); N::<impl Trait>] as Trait>`;
3. then instantiating this header with the impl's args causing a param/arg mismatch and ICE.

This PR uses infer tys for synthetic params. Although this will emit the error in `ItemCtxt` because infer tys are not allowed here. I think that is reasonable, because `N` omits the synthetic parameter, though we cannot write the ty explicitly anywhere.

Fixes rust-lang#155834
add crashtests [1/N]

There are currently very few crashtests for issues created in the last year. Let's start adding some again.
…itor

tests: modify s390x vector test to be robust to instruction scheduling

A recent LLVM change causes some changes here, if I'm understanding correctly it allows some better latency reduction. From what I can tell, this test doesn't care that only a single register is used, so we use -DAG instead of -NEXT to allow some instruction reordering.

By happy coincidence, the z10 and z13 code matches now, which collapsed some of the test lines. I'm happy to split them back out if that's bad for some reason though!
@rust-bors rust-bors Bot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jun 27, 2026
@rust-bors

rust-bors Bot commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 3522c34 failed: CI. Failed job:

@JonathanBrouwer

Copy link
Copy Markdown
Contributor Author

@bors retry

@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jun 27, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jun 27, 2026
…uwer

Rollup of 13 pull requests

Successful merges:

 - #157871 ([rustdoc] Update `doc_cfg` hide/show syntax)
 - #158234 (Cross-referencing tuple_trait tracking issue, source and the Unstable Book)
 - #158480 (add smoketest for std::net::hostname)
 - #157625 (Use infer tys for synthetic params when lowering const paths point to fns)
 - #158290 (add crashtests [1/N])
 - #158306 (tests: modify s390x vector test to be robust to instruction scheduling)
 - #158313 (Move `check_target_feature` into the attribute parser)
 - #158431 (More lint cleanups)
 - #158452 (Add missing links in integer docs)
 - #158467 (Add proc macro for unused assignments and corresponding test)
 - #158472 (Add regression test for unexpected pointer dereference issue)
 - #158475 (Fix doc comment on get_debug_as_hex.)
 - #158476 (Fix doc comment on FormattingOptions::new().)
@rust-bors rust-bors Bot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jun 27, 2026
@rust-bors

rust-bors Bot commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 18a5aaf failed: CI. Failed job:

@JonathanBrouwer

Copy link
Copy Markdown
Contributor Author

@bors retry

@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jun 27, 2026
@rust-bors

This comment has been minimized.

@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

A job failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
  IMAGE: dist-x86_64-freebsd
##[endgroup]
    Updating crates.io index
error: failed to get `adler2` as a dependency of package `miniz_oxide v0.8.8`
    ... which satisfies dependency `miniz_oxide = "^0.8.5"` of package `flate2 v1.1.9`
    ... which satisfies dependency `flate2 = "^1.1.9"` of package `citool v0.1.0 (/home/runner/work/rust/rust/src/ci/citool)`

Caused by:
  failed to load source for dependency `adler2`

Caused by:
  unable to update registry `crates-io`

Caused by:
  download of ad/le/adler2 failed

Caused by:
  curl failed

Caused by:

@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

A job failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
  TOOLSTATE_PUBLISH: 1
##[endgroup]
    Updating crates.io index
error: failed to get `simd-adler32` as a dependency of package `miniz_oxide v0.8.8`
    ... which satisfies dependency `miniz_oxide = "^0.8.5"` of package `flate2 v1.1.9`
    ... which satisfies dependency `flate2 = "^1.1.9"` of package `citool v0.1.0 (/home/runner/work/rust/rust/src/ci/citool)`

Caused by:
  failed to load source for dependency `simd-adler32`

Caused by:

@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

A job failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
  TOOLSTATE_PUBLISH: 1
##[endgroup]
    Updating crates.io index
error: failed to get `simd-adler32` as a dependency of package `miniz_oxide v0.8.8`
    ... which satisfies dependency `miniz_oxide = "^0.8.5"` of package `flate2 v1.1.9`
    ... which satisfies dependency `flate2 = "^1.1.9"` of package `citool v0.1.0 (/home/runner/work/rust/rust/src/ci/citool)`

Caused by:
  failed to load source for dependency `simd-adler32`

Caused by:

@rust-bors rust-bors Bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jun 27, 2026
@rust-bors

rust-bors Bot commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 17m 22s
Pushing 13f1859 to main...

@rust-bors rust-bors Bot merged commit 13f1859 into rust-lang:main Jun 27, 2026
14 checks passed
@rustbot rustbot added this to the 1.98.0 milestone Jun 27, 2026
@github-actions

Copy link
Copy Markdown
Contributor
What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing cb41b6d (parent) -> 13f1859 (this PR)

Test differences

Show 267 test diffs

Stage 1

  • [crashes] tests/crashes/147719.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/148511.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/148629.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/148630.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/148632.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/148890.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/148891.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/149162.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/149703.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/152205.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/152295.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/154556.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/154964.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/157568.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/cfg-bool.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/doc-auto-cfg-public-in-private.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/doc-auto-cfg.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/doc-cfg/cfg-bool.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/doc-cfg/doc-auto-cfg-2.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/doc-cfg/doc-auto-cfg-public-in-private.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/doc-cfg/doc-auto-cfg.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/doc-cfg/doc_auto_cfg_reexports.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/doc-cfg/hide-inheritance-key-only.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/doc-cfg/hide-inheritance.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/doc_auto_cfg.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/doc_auto_cfg_reexports.rs: pass -> [missing] (J1)
  • [rustdoc-json] tests/rustdoc-json/doc_cfg.rs: [missing] -> pass (J1)
  • [ui] tests/rustdoc-ui/cfg-hide-show-conflict.rs: pass -> [missing] (J1)
  • [ui] tests/rustdoc-ui/doc-cfg-3.rs: [missing] -> pass (J1)
  • [ui] tests/rustdoc-ui/doc-cfg-4.rs: [missing] -> pass (J1)
  • [ui] tests/rustdoc-ui/lints/doc_cfg_hide-2.rs: [missing] -> pass (J1)
  • net::tests::hostname_smoketest: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/const-generics/mgca/bad-impl-trait-with-apit.rs: [missing] -> pass (J5)
  • [ui (polonius)] tests/ui/liveness/unused-assignments-from-macro-147648.rs: [missing] -> pass (J5)
  • [ui (polonius)] tests/ui/traits/next-solver/unexpected-pointer-deref-issue-154568.rs: [missing] -> pass (J5)
  • [ui] tests/ui/const-generics/mgca/bad-impl-trait-with-apit.rs: [missing] -> pass (J6)
  • [ui] tests/ui/liveness/unused-assignments-from-macro-147648.rs: [missing] -> pass (J6)
  • [ui] tests/ui/traits/next-solver/unexpected-pointer-deref-issue-154568.rs: [missing] -> pass (J6)

Stage 2

  • [crashes] tests/crashes/147719.rs: [missing] -> pass (J0)
  • [crashes] tests/crashes/148511.rs: [missing] -> pass (J0)
  • [crashes] tests/crashes/148629.rs: [missing] -> pass (J0)
  • [crashes] tests/crashes/148630.rs: [missing] -> pass (J0)
  • [crashes] tests/crashes/148632.rs: [missing] -> pass (J0)
  • [crashes] tests/crashes/148890.rs: [missing] -> pass (J0)
  • [crashes] tests/crashes/148891.rs: [missing] -> pass (J0)
  • [crashes] tests/crashes/149162.rs: [missing] -> pass (J0)
  • [crashes] tests/crashes/149703.rs: [missing] -> pass (J0)
  • [crashes] tests/crashes/152205.rs: [missing] -> pass (J0)
  • [crashes] tests/crashes/152295.rs: [missing] -> pass (J0)
  • [crashes] tests/crashes/154556.rs: [missing] -> pass (J0)
  • [crashes] tests/crashes/154964.rs: [missing] -> pass (J0)
  • [crashes] tests/crashes/157568.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/cfg-bool.rs: pass -> [missing] (J3)
  • [rustdoc-html] tests/rustdoc-html/doc-auto-cfg-public-in-private.rs: pass -> [missing] (J3)
  • [rustdoc-html] tests/rustdoc-html/doc-auto-cfg.rs: pass -> [missing] (J3)
  • [rustdoc-html] tests/rustdoc-html/doc-cfg/cfg-bool.rs: [missing] -> pass (J3)
  • [rustdoc-html] tests/rustdoc-html/doc-cfg/doc-auto-cfg-2.rs: [missing] -> pass (J3)
  • [rustdoc-html] tests/rustdoc-html/doc-cfg/doc-auto-cfg-public-in-private.rs: [missing] -> pass (J3)
  • [rustdoc-html] tests/rustdoc-html/doc-cfg/doc-auto-cfg.rs: [missing] -> pass (J3)
  • [rustdoc-html] tests/rustdoc-html/doc-cfg/doc_auto_cfg_reexports.rs: [missing] -> pass (J3)
  • [rustdoc-html] tests/rustdoc-html/doc-cfg/hide-inheritance-key-only.rs: [missing] -> pass (J3)
  • [rustdoc-html] tests/rustdoc-html/doc-cfg/hide-inheritance.rs: [missing] -> pass (J3)
  • [rustdoc-html] tests/rustdoc-html/doc_auto_cfg.rs: pass -> [missing] (J3)
  • [rustdoc-html] tests/rustdoc-html/doc_auto_cfg_reexports.rs: pass -> [missing] (J3)
  • [rustdoc-json] tests/rustdoc-json/doc_cfg.rs: [missing] -> pass (J3)
  • [ui] tests/rustdoc-ui/cfg-hide-show-conflict.rs: pass -> [missing] (J3)
  • [ui] tests/rustdoc-ui/doc-cfg-3.rs: [missing] -> pass (J3)
  • [ui] tests/rustdoc-ui/doc-cfg-4.rs: [missing] -> pass (J3)
  • [ui] tests/rustdoc-ui/lints/doc_cfg_hide-2.rs: [missing] -> pass (J3)
  • [ui] tests/ui/const-generics/mgca/bad-impl-trait-with-apit.rs: [missing] -> pass (J4)
  • [ui] tests/ui/liveness/unused-assignments-from-macro-147648.rs: [missing] -> pass (J4)
  • [ui] tests/ui/traits/next-solver/unexpected-pointer-deref-issue-154568.rs: [missing] -> pass (J4)
  • net::tests::hostname_smoketest: [missing] -> pass (J7)

Additionally, 194 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 13f1859f2faf97a15664e655624baa7417fdc100 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. x86_64-gnu-gcc-core-tests: 7m 43s -> 14m 4s (+82.2%)
  2. pr-check-1: 21m 46s -> 35m 30s (+63.1%)
  3. dist-loongarch64-linux: 1h 8m -> 1h 51m (+62.0%)
  4. dist-x86_64-freebsd: 59m 39s -> 1h 33m (+57.5%)
  5. x86_64-gnu-llvm-22-2: 1h 13m -> 1h 41m (+39.5%)
  6. dist-aarch64-linux: 1h 51m -> 2h 34m (+38.9%)
  7. i686-gnu-nopt-2: 1h 42m -> 2h 15m (+32.2%)
  8. x86_64-msvc-ext2: 1h 22m -> 1h 46m (+29.3%)
  9. x86_64-gnu-llvm-22-3: 1h 20m -> 1h 43m (+29.0%)
  10. dist-x86_64-apple: 2h 15m -> 1h 37m (-28.5%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer

Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#157625 Use infer tys for synthetic params when lowering const path… 0ce5a1cb348805aee36c33a34f4f4147ebbafe5c (link)
#157871 [rustdoc] Update doc_cfg hide/show syntax 0a467927cf8e57788956c35f8f4168d2b969cbff (link)
#158234 Cross-referencing tuple_trait tracking issue, source and th… b86889cfed9b21d214d038d35e5ef0c6f8efcd34 (link)
#158290 add crashtests [1/N] d5360c500a227c52990df504d12d6b395ad4e92d (link)
#158306 tests: modify s390x vector test to be robust to instruction… 777f5cc8191f2b05e7158a15e7a86f057829175d (link)
#158313 Move check_target_feature into the attribute parser 48a7fbce65a6d8d9f8bdcbcc372f195cdd8fcdad (link)
#158431 More lint cleanups 7b702fc2af79b8effe2da20f9ccef17287d1546c (link)
#158452 Add missing links in integer docs 2f5b6ea536f289594e353dcc0e0ee1639829edd2 (link)
#158467 Add proc macro for unused assignments and corresponding test 08f4157661bfbd15d3158307a3f03cbace5abc97 (link)
#158472 Add regression test for unexpected pointer dereference issue 7c5a69d7eb549447b87988371c86f51bec57cf8c (link)
#158475 Fix doc comment on get_debug_as_hex. d0971487d3bb92a6737d12ee6a3174a0068429a9 (link)
#158476 Fix doc comment on FormattingOptions::new(). f36f8fe16813ccc0715ebeb582b474c39b39723d (link)
#158480 add smoketest for std::net::hostname 611ed748258e38f4366509674e82d9dc63fa0beb (link)

previous master: cb41b6d3da

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (13f1859): comparison URL.

Overall result: ❌ regressions - please read:

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.3% [0.2%, 0.5%] 8
Regressions ❌
(secondary)
0.4% [0.2%, 0.6%] 18
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.3% [0.2%, 0.5%] 8

Max RSS (memory usage)

Results (primary 5.2%, secondary 2.5%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
5.2% [4.2%, 6.1%] 2
Regressions ❌
(secondary)
7.0% [5.9%, 8.8%] 3
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-4.2% [-6.1%, -2.2%] 2
All ❌✅ (primary) 5.2% [4.2%, 6.1%] 2

Cycles

Results (secondary -3.2%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-3.2% [-3.8%, -2.3%] 3
All ❌✅ (primary) - - 0

Binary size

This perf run didn't have relevant results for this metric.

Bootstrap: 485.171s -> 485.121s (-0.01%)
Artifact size: 393.14 MiB -> 393.65 MiB (0.13%)

@rustbot rustbot added the perf-regression Performance regression. label Jun 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-rustc-dev-guide Area: rustc-dev-guide A-rustdoc-json Area: Rustdoc JSON backend merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. rollup A PR which is a rollup T-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.